package com.eianiao.web;

import com.eianiao.bean.User;
import com.eianiao.common.R;
import com.eianiao.service.UserService;
import com.fasterxml.jackson.databind.ser.std.UUIDSerializer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.Map;
import java.util.UUID;

@RequestMapping("/user")
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 用户登录
     * @param user
     * @return
     */
    @PostMapping("/login")
    public R login(@RequestBody User user  , HttpSession session){

        System.out.println("*****************************");
        String phone = user.getPhone();
        //3.1 根据手机号来查询用户。
        user = userService.findUserByPhone(phone);

        //3.2 判定用户是否存在
        if(user == null){
            //3.3 如果进入了这个区域，即表示该用户不存在，需要添加该用户的信息到数据库

            //3.3.1 组装用户信息, 存储到数据库
            user = new User();
            user.setPhone(phone);
            user.setName(UUID.randomUUID().toString().replace("-",""));
            System.out.println(user.getName());
            System.out.println("---------------------------");
            user.setStatus(1);
            userService.add(user);
        }

        //3.4 如果进入了这个区域，即表示该用户存在， 把用户保存到session作用域即可
        session.setAttribute("user" , user);

        return R.success("登录成功！");
    }


    /**
     * 用户退出
     * @return
     */
    @PostMapping("/loginout")
    public R loginout(HttpSession session){
        try {
//            session.removeAttribute("userPhone");
//            session.invalidate();
            return R.success("退出登录成功！");
        } catch (Exception e) {
            e.printStackTrace();
            return R.error("退出登录失败！");
        }
    }


}
